package com.huluobo.kotlindemoim1911a2.base

import android.os.Handler
import android.os.Looper

/**
 * Created by lc on 2022/10/17.
 */
interface BasePresenter {
    companion object {
        val handler by lazy {
            Handler(Looper.getMainLooper())//通过主线程Looper保证线程切换在主线程当中
        }
    }

    //1.kotlin中,参数可以是一个没有返回值的方法(在kotlin中所有方法其实都是有返回值的,只是没有返回值的方法的返回是一个Unit类型),
    //在Java中,所有的参数都必须有一个返回值的类型,否则编译不能通过
    //2.f 代表一个方法的形参,Unit代表方法没有返回值,()->代表当前方法会生成一个没有返回值的方法
    //3.f()代表参数形成的一个方法
    fun runOnUIThread(f: () -> Unit) {
        handler.post { f() }//把参数中的方法传入handler,在主线程中进行切换
    }
}